PortNum

enum PortNum : ProtocolMessageEnum

For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a
unique 'portnum' for their application.
If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this
master table.
PortNums should be assigned in the following range:
0-63   Core Meshtastic use, do not use for third party apps
64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to  register your application
256-511 Use one of these portnums for your private applications that you don't want to register publically
All other values are reserved.
Note: This was formerly a Type enum named 'typ' with the same id #
We have change to this 'portnum' based scheme for specifying app handlers for particular payloads.
This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically.
Protobuf enum meshtastic.PortNum

Entries

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Properties

Link copied to clipboard

Admin control packets.
Payload is a AdminMessage message.
ENCODING: Protobuf
ADMIN_APP = 6;
Link copied to clipboard

Same as Text Message but used for critical alerts.
ALERT_APP = 11;
Link copied to clipboard

ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder
ENCODING: libcotshrink
ATAK_FORWARDER = 257;
Link copied to clipboard

ATAK Plugin
Portnum for payloads from the official Meshtastic ATAK plugin
ATAK_PLUGIN = 72;
Link copied to clipboard

Audio Payloads.
Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now
ENCODING: codec2 audio frames
NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
This marker comes from the 'moduleConfig.audio.bitrate' enum minus one.
AUDIO_APP = 9;
Link copied to clipboard

App for transporting Cayenne Low Power Payload, popular for LoRaWAN sensor nodes. Offers ability to send
arbitrary telemetry over meshtastic that is not covered by telemetry.proto
ENCODING: CayenneLLP
CAYENNE_APP = 77;
Link copied to clipboard

Same as Text Message but originating from Detection Sensor Module.
NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
DETECTION_SENSOR_APP = 10;
Link copied to clipboard

Used for the python IP tunnel feature
ENCODING: IP Packet. Handled by the python API, firmware ignores this one and pases on.
IP_TUNNEL_APP = 33;
Link copied to clipboard

Module/port for handling key verification requests.
KEY_VERIFICATION_APP = 12;
Link copied to clipboard

Provides unencrypted information about a node for consumption by a map via MQTT
MAP_REPORT_APP = 73;
Link copied to clipboard
val MAX_VALUE: Int = 511

Currently we limit port nums to no higher than this value
MAX = 511;
Link copied to clipboard

Aggregates edge info for the network by sending out a list of each node's neighbors
ENCODING: Protobuf
NEIGHBORINFO_APP = 71;
Link copied to clipboard

The built-in user info app.
Payload is a User message.
ENCODING: Protobuf
NODEINFO_APP = 4;
Link copied to clipboard

Paxcounter lib included in the firmware
ENCODING: protobuf
PAXCOUNTER_APP = 34;
Link copied to clipboard

The built-in position messaging app.
Payload is a Position message.
ENCODING: Protobuf
POSITION_APP = 3;
Link copied to clipboard

PowerStress based monitoring support (for automated power consumption testing)
POWERSTRESS_APP = 74;
Link copied to clipboard

Private applications should use portnums >= 256.
To simplify initial development and testing you can use "PRIVATE_APP"
in your code without needing to rebuild protobuf files (via [regen-protos.sh](https://github.com/meshtastic/firmware/blob/master/bin/regen-protos.sh))
PRIVATE_APP = 256;
Link copied to clipboard

Optional port for messages for the range test module.
ENCODING: ASCII Plaintext
NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9
RANGE_TEST_APP = 66;
Link copied to clipboard

Reserved for built-in GPIO/example app.
See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
ENCODING: Protobuf
REMOTE_HARDWARE_APP = 2;
Link copied to clipboard

Provides a 'ping' service that replies to any packet it receives.
Also serves as a small example module.
ENCODING: ASCII Plaintext
REPLY_APP = 32;
Link copied to clipboard

Reticulum Network Stack Tunnel App
ENCODING: Fragmented RNS Packet. Handled by Meshtastic RNS interface
RETICULUM_TUNNEL_APP = 76;
Link copied to clipboard

Protocol control packets for mesh protocol use.
Payload is a Routing message.
ENCODING: Protobuf
ROUTING_APP = 5;
Link copied to clipboard

Provides a hardware serial interface to send and receive from the Meshtastic network.
Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network.
Maximum packet size of 240 bytes.
Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp.
ENCODING: binary undefined
SERIAL_APP = 64;
Link copied to clipboard

Used to let multiple instances of Linux native applications communicate
as if they did using their LoRa chip.
Maintained by GitHub user GUVWAF.
Project files at https://github.com/GUVWAF/Meshtasticator
ENCODING: Protobuf (?)
SIMULATOR_APP = 69;
Link copied to clipboard

STORE_FORWARD_APP (Work in Progress)
Maintained by Jm Casler (MC Hamster) : jm@casler.org
ENCODING: Protobuf
STORE_FORWARD_APP = 65;
Link copied to clipboard

Provides a format to send and receive telemetry data from the Meshtastic network.
Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
ENCODING: Protobuf
TELEMETRY_APP = 67;
Link copied to clipboard

A simple UTF-8 text message, which even the little micros in the mesh
can understand and show on their screen eventually in some circumstances
even signal might send messages in this form (see below)
ENCODING: UTF-8 Plaintext (?)
TEXT_MESSAGE_APP = 1;
Link copied to clipboard

Compressed TEXT_MESSAGE payloads.
ENCODING: UTF-8 Plaintext (?) with Unishox2 Compression
NOTE: The Device Firmware converts a TEXT_MESSAGE_APP to TEXT_MESSAGE_COMPRESSED_APP if the compressed
payload is shorter. There's no need for app developers to do this themselves. Also the firmware will decompress
any incoming TEXT_MESSAGE_COMPRESSED_APP payload and convert to TEXT_MESSAGE_APP.
TEXT_MESSAGE_COMPRESSED_APP = 7;
Link copied to clipboard

Provides a traceroute functionality to show the route a packet towards
a certain destination would take on the mesh. Contains a RouteDiscovery message as payload.
ENCODING: Protobuf
TRACEROUTE_APP = 70;
Link copied to clipboard

Deprecated: do not use in new code (formerly called OPAQUE)
A message sent from a device outside of the mesh, in a form the mesh does not understand
NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
ENCODING: binary undefined
UNKNOWN_APP = 0;
Link copied to clipboard

Waypoint payloads.
Payload is a Waypoint message.
ENCODING: Protobuf
WAYPOINT_APP = 8;
Link copied to clipboard
val ZPS_APP_VALUE: Int = 68

Experimental tools for estimating node position without a GPS
Maintained by Github user a-f-G-U-C (a Meshtastic contributor)
Project files at https://github.com/a-f-G-U-C/Meshtastic-ZPS
ENCODING: arrays of int64 fields
ZPS_APP = 68;

Functions

Link copied to clipboard
open fun forNumber(value: Int): Portnums.PortNum
Link copied to clipboard
open fun getDescriptor(): Descriptors.EnumDescriptor
Link copied to clipboard
fun getDescriptorForType(): Descriptors.EnumDescriptor
Link copied to clipboard
fun getNumber(): Int
Link copied to clipboard
fun getValueDescriptor(): Descriptors.EnumValueDescriptor
Link copied to clipboard
open fun internalGetValueMap(): Internal.EnumLiteMap<Portnums.PortNum>
Link copied to clipboard
open fun valueOf(desc: Descriptors.EnumValueDescriptor): Portnums.PortNum
open fun valueOf(value: Int): Portnums.PortNum

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Link copied to clipboard

Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants.